/**

 * 
 */
package com.cplsystems.incidencias.business;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

@Entity
@Table
public class DatosOrganizacionales implements Serializable {

	private static final long serialVersionUID = -3519337563733114510L;
	private Long idDatosOrganizacionales;
	private Date fechaContratacion;
	private Date fechaCambios;
	private Float percepcionMensual;
	private Float otrasPercepciones;
	private Float contribuciones;
	private Float planUtilizacion;
	private Float porHora;
	private String numeroAfiliacionIMSS;
	private Boolean evaluacion = false;
	private Boolean reporteTiempo = false;
	private Boolean tarjetaTiempo = false;
	private String clabe;
	private String cuenta;
	private String numeroTarjeta;
	private Persona persona;
	private TipoSueldo tiposueldo;
	private TipoNomina tiponomina;
	private Categoria categoria;
	private FormaPago formapago;
	private String banco;
	private TipoPersonal tipopersonal;
	private Integer totalHoras;
	private Date entradaMatutina;
	private Date entradaVespertina;
	private Date salidaMatutina;
	private Date salidaVespertina;
	private Boolean horasDeComida = false;
	private Boolean trabajoEnSabados = false;
	private Boolean marcarBaja = false;
	private String causa;
	private String horarioLaboral;
	private Float salarioDiarioIMSS;
	private Float deudaInfonavit;
	private String documentoInfonavit;
	private Float porcentajeDescuentoInfonavit;
	private Float restanteDeudaInfonavit;

	/** Transient values */
	private Float percepcionDiarioOldValue;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column
	public Long getIdDatosOrganizacionales() {
		return idDatosOrganizacionales;
	}

	public void setIdDatosOrganizacionales(Long idDatosOrganizacionales) {
		this.idDatosOrganizacionales = idDatosOrganizacionales;
	}

	@Temporal(TemporalType.DATE)
	@Column
	public Date getFechaContratacion() {
		return fechaContratacion;
	}

	public void setFechaContratacion(Date fechaContratacion) {
		this.fechaContratacion = fechaContratacion;
	}

	@Temporal(TemporalType.DATE)
	@Column
	public Date getFechaCambios() {
		return fechaCambios;
	}

	public void setFechaCambios(Date fechaCambios) {
		this.fechaCambios = fechaCambios;
	}

	@Column
	public Float getPercepcionMensual() {
		return percepcionMensual;
	}

	public void setPercepcionMensual(Float percepcionMensual) {
		this.percepcionMensual = percepcionMensual;
	}

	@Column
	public Float getOtrasPercepciones() {
		return otrasPercepciones;
	}

	public void setOtrasPercepciones(Float otrasPercepciones) {
		this.otrasPercepciones = otrasPercepciones;
	}

	@Column
	public Float getContribuciones() {
		return contribuciones;
	}

	public void setContribuciones(Float contribuciones) {
		this.contribuciones = contribuciones;
	}

	@Column
	public Float getPlanUtilizacion() {
		return planUtilizacion;
	}

	public void setPlanUtilizacion(Float planUtilizacion) {
		this.planUtilizacion = planUtilizacion;
	}

	@Column
	public Float getPorHora() {
		return porHora;
	}

	public void setPorHora(Float porHora) {
		this.porHora = porHora;
	}

	@Column
	public String getNumeroAfiliacionIMSS() {
		return numeroAfiliacionIMSS;
	}

	public void setNumeroAfiliacionIMSS(String numeroAfiliacionIMSS) {
		this.numeroAfiliacionIMSS = numeroAfiliacionIMSS;
	}

	@Column
	public Boolean getEvaluacion() {
		return evaluacion;
	}

	public void setEvaluacion(Boolean evaluacion) {
		this.evaluacion = evaluacion;
	}

	@Column
	public Boolean getReporteTiempo() {
		return reporteTiempo;
	}

	public void setReporteTiempo(Boolean reporteTiempo) {
		this.reporteTiempo = reporteTiempo;
	}

	@Column
	public Boolean getTarjetaTiempo() {
		return tarjetaTiempo;
	}

	public void setTarjetaTiempo(Boolean tarjetaTiempo) {
		this.tarjetaTiempo = tarjetaTiempo;
	}

	@Column
	public String getClabe() {
		return clabe;
	}

	public void setClabe(String clabe) {
		this.clabe = clabe;
	}

	@Column
	public String getCuenta() {
		return cuenta;
	}

	public void setCuenta(String cuenta) {
		this.cuenta = cuenta;
	}

	@Column
	public String getNumeroTarjeta() {
		return numeroTarjeta;
	}

	public void setNumeroTarjeta(String numeroTarjeta) {
		this.numeroTarjeta = numeroTarjeta;
	}

	@OneToOne
	@JoinColumn(name = "persona")
	public Persona getPersona() {
		return persona;
	}

	public void setPersona(Persona persona) {
		this.persona = persona;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "tiposueldo")
	public TipoSueldo getTiposueldo() {
		return tiposueldo;
	}

	public void setTiposueldo(TipoSueldo tiposueldo) {
		this.tiposueldo = tiposueldo;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "tiponomina")
	public TipoNomina getTiponomina() {
		return tiponomina;
	}

	public void setTiponomina(TipoNomina tiponomina) {
		this.tiponomina = tiponomina;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "categoria")
	public Categoria getCategoria() {
		return categoria;
	}

	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "formapago")
	public FormaPago getFormapago() {
		return formapago;
	}

	public void setFormapago(FormaPago formapago) {
		this.formapago = formapago;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "tipopersonal")
	public TipoPersonal getTipopersonal() {
		return tipopersonal;
	}

	public void setTipopersonal(TipoPersonal tipopersonal) {
		this.tipopersonal = tipopersonal;
	}

	@Column
	public Integer getTotalHoras() {
		return totalHoras;
	}

	public void setTotalHoras(Integer totalHoras) {
		this.totalHoras = totalHoras;
	}

	public Date getEntradaMatutina() {
		return entradaMatutina;
	}

	public void setEntradaMatutina(Date entradaMatutina) {
		this.entradaMatutina = entradaMatutina;
	}

	public Date getEntradaVespertina() {
		return entradaVespertina;
	}

	public void setEntradaVespertina(Date entradaVespertina) {
		this.entradaVespertina = entradaVespertina;
	}

	public Date getSalidaMatutina() {
		return salidaMatutina;
	}

	public void setSalidaMatutina(Date salidaMatutina) {
		this.salidaMatutina = salidaMatutina;
	}

	public Date getSalidaVespertina() {
		return salidaVespertina;
	}

	public void setSalidaVespertina(Date salidaVespertina) {
		this.salidaVespertina = salidaVespertina;
	}

	public Boolean getHorasDeComida() {
		return horasDeComida;
	}

	public void setHorasDeComida(Boolean horasDeComida) {
		this.horasDeComida = horasDeComida;
	}

	public Boolean getTrabajoEnSabados() {
		return trabajoEnSabados;
	}

	public void setTrabajoEnSabados(Boolean trabajoEnSabados) {
		this.trabajoEnSabados = trabajoEnSabados;
	}

	public Boolean getMarcarBaja() {
		return marcarBaja;
	}

	public void setMarcarBaja(Boolean marcarBaja) {
		this.marcarBaja = marcarBaja;
	}

	public String getCausa() {
		return causa;
	}

	public void setCausa(String causa) {
		this.causa = causa;
	}

	public String getBanco() {
		return banco;
	}

	public void setBanco(String banco) {
		this.banco = banco;
	}

	public String getHorarioLaboral() {
		return horarioLaboral;
	}

	public void setHorarioLaboral(String horarioLaboral) {
		this.horarioLaboral = horarioLaboral;
	}

	public Float getSalarioDiarioIMSS() {
		return salarioDiarioIMSS;
	}

	public void setSalarioDiarioIMSS(Float salarioDiarioIMSS) {
		this.salarioDiarioIMSS = salarioDiarioIMSS;
	}

	public Float getDeudaInfonavit() {
		return deudaInfonavit;
	}

	public void setDeudaInfonavit(Float deudaInfonavit) {
		this.deudaInfonavit = deudaInfonavit;
	}

	public String getDocumentoInfonavit() {
		return documentoInfonavit;
	}

	public void setDocumentoInfonavit(String documentoInfonavit) {
		this.documentoInfonavit = documentoInfonavit;
	}

	public Float getPorcentajeDescuentoInfonavit() {
		return porcentajeDescuentoInfonavit;
	}

	public void setPorcentajeDescuentoInfonavit(
			Float porcentajeDescuentoInfonavit) {
		this.porcentajeDescuentoInfonavit = porcentajeDescuentoInfonavit;
	}

	public Float getRestanteDeudaInfonavit() {
		return restanteDeudaInfonavit;
	}

	public void setRestanteDeudaInfonavit(Float restanteDeudaInfonavit) {
		this.restanteDeudaInfonavit = restanteDeudaInfonavit;
	}

	@Transient
	public Float getPercepcionDiarioOldValue() {
		return percepcionDiarioOldValue;
	}

	public void setPercepcionDiarioOldValue(Float percepcionDiarioOldValue) {
		this.percepcionDiarioOldValue = percepcionDiarioOldValue;
	}

}
